package com.sgb.kjwl.di.pick;

import com.sgb.kjwl.repository.PickRepertory;
import com.sgb.kjwl.repository.impl.PickRepertoryImpl;
import com.sgb.kjwl.view.ui.activity.WebViewX5Fragment;
import com.sgb.kjwl.view.ui.activity.material.hall.NewPickBiddingListFragment;
import com.sgb.kjwl.view.ui.activity.material.hall.NewPickBiddingModel;
import com.sgb.kjwl.view.ui.activity.material.hall.NewPickSigningUpListFragment;
import com.sgb.kjwl.view.ui.activity.material.hall.NewPickSigningUpModel;
import com.sgb.kjwl.view.ui.activity.material.hall.XufangFaQiFragment;
import com.sgb.kjwl.view.ui.activity.material.hall.XufangFaQiModle;
import com.sgb.kjwl.view.ui.activity.pick.PickExpertListActivity;
import com.sgb.kjwl.view.ui.fragment.NewWebViewX5Fragment;
import com.sgb.kjwl.view.ui.fragment.pick.DemandSearchListFragment;
import com.sgb.kjwl.view.ui.fragment.pick.PickBiddingListFragment;
import com.sgb.kjwl.view.ui.fragment.pick.PickCompanyListFragment;
import com.sgb.kjwl.view.ui.fragment.pick.PickListsFragment;
import com.sgb.kjwl.view.ui.fragment.pick.PickNoticingBidFragment;
import com.sgb.kjwl.view.ui.fragment.pick.PickRequireListFragment3;
import com.sgb.kjwl.view.ui.fragment.pick.PickSigningUpListFragment;
import com.sgb.kjwl.viewmodel.pick.DemandlistModle;
import com.sgb.kjwl.viewmodel.pick.H5Model;
import com.sgb.kjwl.viewmodel.pick.NewH5Model;
import com.sgb.kjwl.viewmodel.pick.PickBiddingModel;
import com.sgb.kjwl.viewmodel.pick.PickCompanyModel;
import com.sgb.kjwl.viewmodel.pick.PickExpertListModel;
import com.sgb.kjwl.viewmodel.pick.PickListsFragmentModel;
import com.sgb.kjwl.viewmodel.pick.PickNoticingModel;
import com.sgb.kjwl.viewmodel.pick.PickRequireListFragModel3;
import com.sgb.kjwl.viewmodel.pick.PickSigningUpModel;
import com.swgk.core.base.di.Fragment;
import com.swgk.core.base.api.BaseApiSource;
import com.swgk.core.base.model.preference.BasePreferenceSource;

import dagger.Module;
import dagger.Provides;

@Module
public class PickFragModule {
    private XufangFaQiFragment xufangFaQiFragment;
    private NewPickBiddingListFragment newPickBiddingListFragment;
    private PickRequireListFragment3 pickRequireListFragment3;
    private WebViewX5Fragment webViewX5Fragment;
    private PickSigningUpListFragment pickSigningUpListFragment;
    private PickBiddingListFragment pickBiddingListFragment;
    private PickNoticingBidFragment pickNoticingBidFragment;
    private PickCompanyListFragment pickCompanyListFragment;
    private NewWebViewX5Fragment mNewWebViewX5Fragment;
    private NewPickSigningUpListFragment newPickSigningUpListFragment;
    private DemandSearchListFragment demandlistfragment;
    private PickListsFragment pickListsFragment;
    private PickExpertListActivity pickExpertListActivity;

    public PickFragModule(DemandSearchListFragment demandlistfragment) {
        this.demandlistfragment = demandlistfragment;
    }

    public PickFragModule(PickRequireListFragment3 pickRequireListFragment3) {
        this.pickRequireListFragment3 = pickRequireListFragment3;
    }

    public PickFragModule(WebViewX5Fragment webViewX5Fragment) {
        this.webViewX5Fragment = webViewX5Fragment;
    }

    public PickFragModule(PickSigningUpListFragment pickSigningUpListFragment) {
        this.pickSigningUpListFragment = pickSigningUpListFragment;
    }

    public PickFragModule(PickBiddingListFragment pickBiddingListFragment) {
        this.pickBiddingListFragment = pickBiddingListFragment;
    }

    public PickFragModule(PickNoticingBidFragment pickNoticingBidFragment) {
        this.pickNoticingBidFragment = pickNoticingBidFragment;
    }

    public PickFragModule(PickCompanyListFragment pickCompanyListFragment) {
        this.pickCompanyListFragment = pickCompanyListFragment;
    }

    public PickFragModule(NewWebViewX5Fragment newWebViewX5Fragment) {
        mNewWebViewX5Fragment = newWebViewX5Fragment;
    }

    public PickFragModule(NewPickSigningUpListFragment newPickSigningUpListFragment) {
        this.newPickSigningUpListFragment = newPickSigningUpListFragment;
    }

    public PickFragModule(NewPickBiddingListFragment newPickBiddingListFragment) {
        this.newPickBiddingListFragment = newPickBiddingListFragment;
    }

    public PickFragModule(XufangFaQiFragment xufangFaQiFragment) {
        this.xufangFaQiFragment = xufangFaQiFragment;
    }

    public PickFragModule(PickListsFragment pickListsFragment) {
        this.pickListsFragment = pickListsFragment;
    }

    public PickFragModule(PickExpertListActivity pickExpertListActivity) {
        this.pickExpertListActivity = pickExpertListActivity;
    }

    @Provides
    @Fragment
    PickRepertory providePickRepertory(BaseApiSource apiSource, BasePreferenceSource preferenceSource) {
        return new PickRepertoryImpl(apiSource, preferenceSource);
    }

    @Provides
    @Fragment
    PickRequireListFragModel3 providePickRequireListFragModel3(PickRepertory repertory) {
        return new PickRequireListFragModel3(pickRequireListFragment3, repertory);
    }

    @Provides
    @Fragment
    PickSigningUpModel pickSigningUpModel(PickRepertory repertory) {
        return new PickSigningUpModel(pickSigningUpListFragment, repertory);
    }

    @Provides
    @Fragment
    PickBiddingModel pickBiddingModel(PickRepertory repertory) {
        return new PickBiddingModel(pickBiddingListFragment, repertory);
    }

    @Provides
    @Fragment
    PickNoticingModel pickNoticingModel(PickRepertory repertory) {
        return new PickNoticingModel(pickNoticingBidFragment, repertory);
    }

    @Provides
    @Fragment
    PickCompanyModel pickCompanyModel(PickRepertory repertory) {
        return new PickCompanyModel(pickCompanyListFragment, repertory);
    }

    @Provides
    @Fragment
    H5Model h5Model(PickRepertory repertory) {
        return new H5Model(webViewX5Fragment, repertory);
    }

    @Provides
    @Fragment
    NewH5Model newH5Model(PickRepertory repertory) {
        return new NewH5Model(mNewWebViewX5Fragment, repertory);
    }

    @Provides
    @Fragment
    NewPickSigningUpModel newPickSigningUpModel(PickRepertory repertory) {
        return new NewPickSigningUpModel(newPickSigningUpListFragment, repertory);
    }

    @Provides
    @Fragment
    NewPickBiddingModel newPickBiddingModel(PickRepertory repertory) {
        return new NewPickBiddingModel(newPickBiddingListFragment, repertory);
    }

    @Provides
    @Fragment
    XufangFaQiModle xufangFaQiModle() {
        return new XufangFaQiModle(xufangFaQiFragment);
    }

    @Provides
    @Fragment
    DemandlistModle DemandlistModle(PickRepertory repertory) {
        return new DemandlistModle(demandlistfragment,repertory);
    }

    @Provides
    @Fragment
    PickListsFragmentModel PickListsFragmentModel(PickRepertory repertory) {
        return new PickListsFragmentModel(pickListsFragment,repertory);
    }

    @Provides
    @Fragment
    PickExpertListModel PickExpertListModel(PickRepertory repertory) {
        return new PickExpertListModel(pickExpertListActivity,repertory);
    }

}

